package com.cetcs.kmga.dataManager.dao.hbase;


import com.cetcs.kmga.dataManager.entity.logManager.vo.LogTbKvVo;
import com.cetcs.kmga.dataManager.util.HBasePageModel;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutionException;

/**
 * 日志管理操作dao层
 *
 * @author xutao
 * @version V1.0 创建时间：2017-09-07 14:28
 *          Copyright 2017 by CETC
 */
public interface ILogManagerDao {

    /**
     * 获取探针日志的公共方法
     *
     * @param type                类型
     * @param columnArr           参数数组
     * @param startTime           起始时间
     * @param endTime             结束时间
     * @param fuzzyIndexParams    模糊索引对象表
     * @param accurateIndexParams 精确查询对象表
     * @return
     * @throws ExecutionException
     * @throws InterruptedException
     */
    HBasePageModel findProbeInfoByCondition(String type, List<String> columnArr, Date startTime, Date endTime, List<LogTbKvVo> fuzzyIndexParams, List<LogTbKvVo> accurateIndexParams,boolean isNotExport) throws ExecutionException, InterruptedException;

    /**
     * 获取除探针日志以外日志的公共方法
     *
     * @param tbName      表名
     * @param type        类型
     * @param columnArr   参数数组
     * @param startTime   起始时间
     * @param endTime     结束时间
     * @param indexParams 参数对象表
     * @return
     * @throws ExecutionException
     * @throws InterruptedException
     */
    HBasePageModel findLogInfoByCondition(String tbName, String type, List<String> columnArr, Date startTime, Date endTime, Map<String, Object> indexParams,boolean isNotExport) throws ExecutionException, InterruptedException;

    /**
     * 获取日志的详情
     *
     * @param tbName  表名称
     * @param id  主键ID
     * @return
     */
    Map<String, Object> findLogDetailById(String tbName, String id);
}
